package com.wang.vedio.player;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Build;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.Nullable;

import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.style.PictureWindowAnimationStyle;
import com.vondear.rxtool.view.RxToast;
import com.wang.vedio.R;
import com.wang.vedio.base.BaseActivity;
import com.wang.vedio.net.SharedHelper;
import com.wang.vedio.net.entity.BaseBean;
import com.wang.vedio.net.entity.LoginBean;
import com.wang.vedio.net.rxjava.HttpMethods;
import com.wang.vedio.net.subscribers.ProgressSubscriber;
import com.wang.vedio.net.subscribers.SubscriberOnNextListener;
import com.wang.vedio.utils.GlideEngine;
import com.wang.vedio.utils.StringUtils;
import com.wang.vedio.utils.statusbar.StatusBarUtil;

import java.io.File;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;

public class SmrzActivity extends BaseActivity {
    @BindView(R.id.scsfzImg)
    ImageView scsfzImg;
    @BindView(R.id.zpzImg)
    ImageView zpzImg;

    @BindView(R.id.mobile)
    TextView mobile;
    @BindView(R.id.idCardNo)
    TextView idCardNo;
    @BindView(R.id.bankNo)
    TextView bankNo;



    @BindView(R.id.sureBtn)
    TextView sureBtn;
    @Override
    protected int getLayoutId() {
        return R.layout.gyss_smrz_layout;
    }

    private int type;

    @Override
    protected void initView() {
        ButterKnife.bind(this);
        setTitle("商务合作");
        StatusBarUtil.setStatusBar(this, true, R.color.transparent, false, true);
    }

    @Override
    protected void initData() {
    }

    private void saveData() {
        SubscriberOnNextListener<BaseBean<LoginBean>> onNextListener = baseBean -> {
            RxToast.normal(baseBean.getMessage());
            finish();
        };
        MediaType mediaType = MediaType.parse("application/octet-stream");//设置类型，类型为八位字节流
        MultipartBody.Builder builder = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("memberId", SharedHelper.readId(mContext))
                .addFormDataPart("idCardNo",idCardNo.getText().toString())
                .addFormDataPart("mobile",mobile.getText().toString())
                .addFormDataPart("bankNo",bankNo.getText().toString());

        File file1 = new File(zjzPath);
        RequestBody requestBody = RequestBody.create(mediaType, file1);//把文件与类型放入请求体
        builder.addFormDataPart("scfszImg", file1.getName(), requestBody);//文件名,请求体里的文件

        File file2 = new File(zpzPath);
        RequestBody requestBody2 = RequestBody.create(mediaType, file2);//把文件与类型放入请求体
        builder.addFormDataPart("zpzImg", file2.getName(), requestBody);//文件名,请求体里的文件

        HttpMethods.getInstance().saveRealName(new ProgressSubscriber<>(onNextListener, mContext, true), builder.build());
    }

    private int typess = -1;
    @OnClick({R.id.sureBtn,R.id.scsfzImg,R.id.zpzImg})
    public void onClick(View v){
        if(v.getId() == R.id.sureBtn){
            if(StringUtils.isEmpty(idCardNo.getText().toString())){
                RxToast.normal("请填写身份证号");
                return;
            }
            if(StringUtils.isEmpty(mobile.getText().toString())){
                RxToast.normal("请填写手机号");
                return;
            }
            if(StringUtils.isEmpty(bankNo.getText().toString())){
                RxToast.normal("请填写提现卡号");
                return;
            }

            if(StringUtils.isEmpty(zjzPath)){
                RxToast.normal("请上传手持证件照");
                return;
            }
            if(StringUtils.isEmpty(zpzPath)){
                RxToast.normal("请上传自拍照");
                return;
            }
            saveData();
        }else if(v.getId() == R.id.scsfzImg || v.getId() == R.id.zpzImg){
            if(v.getId() == R.id.scsfzImg){
                typess = 0;
            }else{
                typess = 1;
            }
            PictureSelector.create(this)
                    .openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
                    .setPictureWindowAnimationStyle(new PictureWindowAnimationStyle())// 自定义相册启动退出动画
                    .loadImageEngine(GlideEngine.createGlideEngine())// 外部传入图片加载引擎，必传项   参考Demo MainActivity中代码
                    //   .isOriginalImageControl(cb_original.isChecked())// 是否显示原图控制按钮，如果用户勾选了 压缩、裁剪功能将会失效
                    .isWeChatStyle(true)// 是否开启微信图片选择风格，此开关开启了才可使用微信主题！！！
                    .isAndroidQTransform(true)// 是否需要处理Android Q 拷贝至应用沙盒的操作，只针对compress(false); && enableCrop(false);有效
                    .maxSelectNum(1)// 最大图片选择数量 int
                    .minSelectNum(1)// 最小选择数量 int
                    .imageSpanCount(3)// 每行显示个数 int
                    .isNotPreviewDownload(true)// 预览图片长按是否可以下载
                    .setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
                    .queryMaxFileSize(50)// 只查多少M以内的图片、视频、音频  单位M
                    //   .querySpecifiedFormatSuffix(PictureMimeType.ofPNG())// 查询指定后缀格式资源
                    // .cameraFileName("test.png") // 重命名拍照文件名、注意这个只在使用相机时可以使用
                    //  .renameCompressFile("test.png")// 重命名压缩文件名、 注意这个不要重复，只适用于单张图压缩使用
                    //  .renameCropFileName("test.png")// 重命名裁剪文件名、 注意这个不要重复，只适用于单张图裁剪使用
                    //   .isSingleDirectReturn(false)// 单选模式下是否直接返回，PictureConfig.SINGLE模式下有效
                    .selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
                    .previewImage(true)// 是否可预览图片 true or false
                    .isCamera(true)// 是否显示拍照按钮 true or false
                    .imageFormat(PictureMimeType.PNG)// 拍照保存图片格式后缀,默认jpeg
                    .isZoomAnim(true)// 图片列表点击 缩放效果 默认true
                    .sizeMultiplier(0.5f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效
                    .setOutputCameraPath("/CustomPath")// 自定义拍照保存路径,可不填
                    .enableCrop(false)// 是否裁剪 true or false
                    .compress(true)// 是否压缩 true or false
                    .isGif(true)// 是否显示gif图片 true or false
                    //   .compressSavePath(getPath())//压缩图片保存地址
                    .openClickSound(false)// 是否开启点击声音 true or false
                    .cutOutQuality(90)// 裁剪输出质量 默认100
                    .minimumCompressSize(100)// 小于100kb的图片不压缩
                    .forResult(PictureConfig.CHOOSE_REQUEST);//结果回调onActivityResult code
        }
    }

    private String zjzPath,zpzPath;
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == Activity.RESULT_OK && requestCode == PictureConfig.CHOOSE_REQUEST){
            // 图片选择结果回调
            if (!PictureSelector.obtainMultipleResult(data).isEmpty()) {
                String locationPath = PictureSelector.obtainMultipleResult(data).get(0).getPath();
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
                    locationPath = PictureSelector.obtainMultipleResult(data).get(0).getAndroidQToPath();
                }
                RequestOptions options = new RequestOptions()
                        .placeholder(R.mipmap.ic_paizhao_img)//图片加载出来前，显示的图片
                        .fallback(R.mipmap.ic_paizhao_img) //url为空的时候,显示的图片
                        .error(R.mipmap.ic_paizhao_img);//图片加载失败后，显示的图片
                if(typess == 0){
                    Glide.with(mContext).load(locationPath).apply(options).into(scsfzImg);
                    zjzPath = locationPath;
                }else{
                    Glide.with(mContext).load(locationPath).apply(options).into(zpzImg);
                    zpzPath = locationPath;
                }

            }
        }
    }
}
